package com.szeldon.declatest.exec.events.dostep;

import java.util.Date;

import com.szeldon.declatest.exec.events.TestSuiteExecEvent;

/**
 * Superclass for all "DoScenarioStep" execution events except start and end covered in
 * {@link DoScenarioStepStartExecEvent} and {@link DoScenarioStepEndExecEvent}.
 * 
 * @author szeldon
 * 
 */
public abstract class DoScenarioStepExecEvent extends TestSuiteExecEvent {

    private String stepId;
    private String stepDescription;
    private String stepEndpointId;
    private String stepRequestPath;
    private String endpointDescription;
    private String endpointUrl;
    private String endpointSettingsId;

    /**
     * 
     * @param scenarioId
     * @param eventDescription
     * @param eventDate
     * @param stepId
     * @param stepDescription
     * @param stepEndpointId
     * @param stepRequestPath
     * @param endpointDescription
     * @param endpointUrl
     * @param endpointSettingsId
     */
    public DoScenarioStepExecEvent(String scenarioId, String eventDescription, Date eventDate, String stepId,
            String stepDescription, String stepEndpointId, String stepRequestPath, String endpointDescription,
            String endpointUrl, String endpointSettingsId) {
        super(scenarioId, eventDescription, eventDate);
        this.stepId = stepId;
        this.stepDescription = stepDescription;
        this.stepEndpointId = stepEndpointId;
        this.stepRequestPath = stepRequestPath;
        this.endpointDescription = endpointDescription;
        this.endpointUrl = endpointUrl;
        this.endpointSettingsId = endpointSettingsId;
    }

    public String getStepId() {
        return stepId;
    }

    public String getStepDescription() {
        return stepDescription;
    }

    public String getStepEndpointId() {
        return stepEndpointId;
    }

    public String getStepRequestPath() {
        return stepRequestPath;
    }

    public String getEndpointDescription() {
        return endpointDescription;
    }

    public String getEndpointUrl() {
        return endpointUrl;
    }

    public String getEndpointSettingsId() {
        return endpointSettingsId;
    }

    @Override
    public String toString() {
        return super.toString() + "stepId=" + stepId + "; stepDescription=" + stepDescription + "; stepEndpointId="
                + stepEndpointId + "; stepRequestPath=" + stepRequestPath + "; endpointDescription="
                + endpointDescription + "; endpointUrl=" + endpointUrl + "; endpointSettingsId=" + endpointSettingsId
                + ";";
    }

}
